home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Aminet 30
/
Aminet 30 (1999)(Schatztruhe)[!][Apr 1999].iso
/
Aminet
/
dev
/
lang
/
SmallEiffel.lha
/
SmallEiffel
/
bin_c
/
compile_to_jvm26.c
< prev
next >
Wrap
C/C++ Source or Header
|
1998-12-22
|
28KB
|
1,333 lines
/*
-- ANSI C code generated by :
-- SmallEiffel The GNU Eiffel Compiler -- Release (- 0.79) --
-- Copyright (C), 1994-98 - LORIA - UHP - CRIN - INRIA - FRANCE --
-- Dominique COLNET and Suzanne COLLIN - colnet@loria.fr --
-- http://www.loria.fr/SmallEiffel --
*/
#include "compile_to_jvm.h"
void r28opcode_goto_backward(T28* C,T2 a1){
T2 _offset=0;
T2 _q=0;
T2 _r=0;
_offset=(/*(IRF4.9program_counter*//*(IRF4.6count*/(((T48*)(oBC28code))->_upper/*8*/)+(1)/*)*//*)*/)-(a1);
r28opcode(C,167,0);
_r=(_offset)%(256);
_q=(_offset)/(256);
/*[IF*/
if((_r)==(0)){
/*[IRF3.6add_u1*/{T2 b1=(256)-(_q);
r48add_last((T48*)(oBC28code),b1);
}/*]*/
/*[IRF3.6add_u1*/{T2 b1=0;
r48add_last((T48*)(oBC28code),b1);
}/*]*/
}
else{
/*[IRF3.6add_u1*/{T2 b1=(255)-(_q);
r48add_last((T48*)(oBC28code),b1);
}/*]*/
/*[IRF3.6add_u1*/{T2 b1=(256)-(_r);
r48add_last((T48*)(oBC28code),b1);
}/*]*/
}
/*FI]*/
}
void r28runtime_error_inspect(T28* C,T0* a1){
T2 _idx=0;
T0* _rt=NULL;
T0* _cp=NULL;
_cp=oBC12constant_pool;
_rt=X109result_type(a1);
/*[IF*/
if(X52is_character(_rt)){
}
/*FI]*/
r28push_position(C,X109start_position(a1));
_idx=r29idx_methodref3(((T29*)_cp),((T0*)ms13_42084),((T0*)ms28_63273),((T0*)ms28_50448));
r28opcode_invokestatic(C,_idx,-(3));
}
/*No:CODE_ATTRIBUTE.add_u1*/
/*No:CODE_ATTRIBUTE.opcode_aconst_null*/
void r28opcode_putstatic(T28* C,T2 a1,T2 a2){
r28opcode(C,179,a2);
r28add_u2(a1);
}
/*No:CODE_ATTRIBUTE.opcode_i2f*/
T2 r28opcode_ifnonnull(T28* C){
T2 R=0;
r28opcode(C,199,-(1));
R=r28skip_2_bytes();
return R;
}
/*No:CODE_ATTRIBUTE.opcode_d2f*/
void r28opcode_getstatic(T28* C,T2 a1,T2 a2){
r28opcode(C,178,a2);
r28add_u2(a1);
}
void r28add_u2(T2 a1){
/*[IRF3.6add_u1*/{T2 b1=(a1)/(256);
r48add_last((T48*)(oBC28code),b1);
}/*]*/
/*[IRF3.6add_u1*/{T2 b1=(a1)%(256);
r48add_last((T48*)(oBC28code),b1);
}/*]*/
}
/*No:CODE_ATTRIBUTE.opcode_fdiv*/
/*No:CODE_ATTRIBUTE.opcode_idiv*/
/*No:CODE_ATTRIBUTE.opcode_ddiv*/
void r28runtime_internal_exception_number(T28* C){
T2 _idx=0;
T0* _cp=NULL;
_cp=oBC12constant_pool;
_idx=r29idx_fieldref3(((T29*)_cp),((T0*)ms13_42084),((T0*)ms28_85275),((T0*)ms13_74));
r28opcode_getstatic(C,_idx,1);
}
void r28opcode_iinc(T28* C,T2 a1,T2 a2){
r28opcode(C,132,0);
/*[IRF3.6add_u1*/{T2 b1=a1;
r48add_last((T48*)(oBC28code),b1);
}/*]*/
/*[IRF3.6add_u1*/{T2 b1=a2;
r48add_last((T48*)(oBC28code),b1);
}/*]*/
}
/*No:CODE_ATTRIBUTE.opcode_iconst_i*/
void r28clear(T28* C){
/*[IRF3.3clear*/((((T48*)((T48*)(oBC28code))))->_upper)=(-(1));
/*]*/
/*[IRF3.2clear*//*[IRF3.3clear*/((((T48*)((T48*)(oBC47from_pc))))->_upper)=(-(1));
/*]*/
/*[IRF3.3clear*/((((T48*)((T48*)(oBC47to_pc))))->_upper)=(-(1));
/*]*/
/*[IRF3.3clear*/((((T48*)((T48*)(oBC47handler_pc))))->_upper)=(-(1));
/*]*/
/*[IRF3.3clear*/((((T48*)((T48*)(oBC47type_idx))))->_upper)=(-(1));
/*]*/
/*]*/
C->_max_stack=0;
C->_stack_level=0;
C->_max_locals=r24max_locals((T24*)(oBC12jvm));
}
/*No:CODE_ATTRIBUTE.opcode_return*/
/*No:CODE_ATTRIBUTE.opcode_dup2_x1*/
/*No:CODE_ATTRIBUTE.opcode_swap*/
/*No:CODE_ATTRIBUTE.opcode_aload_1*/
void r28opcode_astore(T28* C,T2 a1){
/*[IF*/
if((a1)<=(3)){
r28opcode(C,(75)+(a1),-(1));
}
else{
r28opcode(C,58,-(1));
/*[IRF3.6add_u1*/{T2 b1=a1;
r48add_last((T48*)(oBC28code),b1);
}/*]*/
}
/*FI]*/
}
void r28opcode_fstore(T28* C,T2 a1){
/*[IF*/
if((a1)<=(3)){
r28opcode(C,(67)+(a1),-(1));
}
else{
r28opcode(C,56,-(1));
/*[IRF3.6add_u1*/{T2 b1=a1;
r48add_last((T48*)(oBC28code),b1);
}/*]*/
}
/*FI]*/
}
void r28opcode_dstore(T28* C,T2 a1){
/*[IF*/
if((a1)<=(3)){
r28opcode(C,(71)+(a1),-(1));
}
else{
r28opcode(C,57,-(1));
/*[IRF3.6add_u1*/{T2 b1=a1;
r48add_last((T48*)(oBC28code),b1);
}/*]*/
}
/*FI]*/
}
void r28opcode_istore(T28* C,T2 a1){
/*[IF*/
if((a1)<=(3)){
r28opcode(C,(59)+(a1),-(1));
}
else{
r28opcode(C,54,-(1));
/*[IRF3.6add_u1*/{T2 b1=a1;
r48add_last((T48*)(oBC28code),b1);
}/*]*/
}
/*FI]*/
}
T0* r28jvm_root_class(void){
if(fBC12jvm_root_class==0){
fBC12jvm_root_class=1;
{T7*n=malloc(sizeof(*n));
*n=M7;
r7make(n,12);
oBC12jvm_root_class=(T0*)n;
}
r7copy(((T7*)oBC12jvm_root_class),((T24*)(oBC12jvm))->_output_name/*0*/);
r7extend(((T7*)oBC12jvm_root_class),'\57');
r7append(((T7*)oBC12jvm_root_class),((T0*)ms13_1732));
}
return oBC12jvm_root_class;}
/*No:CODE_ATTRIBUTE.program_counter*/
void r28opcode_instanceof(T28* C,T2 a1){
r28opcode(C,193,0);
r28add_u2(a1);
}
void r28opcode_invokespecial(T28* C,T2 a1,T2 a2){
r28opcode(C,183,a2);
r28add_u2(a1);
}
void r28opcode_invokevirtual(T28* C,T2 a1,T2 a2){
r28opcode(C,182,a2);
r28add_u2(a1);
}
/*No:CODE_ATTRIBUTE.fz_se_runtime*/
void r28check_closing(T28* C){
/*[IRF3.4opcode_iconst_0*/r28opcode(C,3,1);
/*]*/
r28opcode_putstatic(C,(C)->_check_flag_idx/*12*/,-(1));
r28resolve_u2_branch((C)->_skip_check/*16*/);
}
void r28check_opening(T28* C){
T0* _cp=NULL;
_cp=oBC12constant_pool;
/*[IRF3.4opcode_iconst_1*/r28opcode(C,4,1);
/*]*/
C->_check_flag_idx=r29idx_fieldref3(((T29*)_cp),r28jvm_root_class(),((T0*)ms13_15550),((T0*)ms13_67));
r28opcode_getstatic(C,(C)->_check_flag_idx/*12*/,1);
C->_skip_check=r28opcode_ifne(C);
r28opcode_putstatic(C,(C)->_check_flag_idx/*12*/,-(1));
}
/*No:CODE_ATTRIBUTE.append_u1*/
/*No:CODE_ATTRIBUTE.opcode_dadd*/
/*No:CODE_ATTRIBUTE.opcode_fadd*/
/*No:CODE_ATTRIBUTE.opcode_iand*/
/*No:CODE_ATTRIBUTE.opcode_iadd*/
void r28resolve_u2_branch(T2 a1){
T2 _offset=0;
_offset=((/*(IRF4.9program_counter*//*(IRF4.6count*/(((T48*)(oBC28code))->_upper/*8*/)+(1)/*)*//*)*/)-(a1))+(1);
/*[IRF3.5put*/(((T48*)(oBC28code))->_storage/*0*/)[a1]=((_offset)/(256));
/*]*/
/*[IRF3.5put*/(((T48*)(oBC28code))->_storage/*0*/)[(a1)+(1)]=((_offset)%(256));
/*]*/
}
void r28opcode_new(T28* C,T2 a1){
r28opcode(C,187,1);
r28add_u2(a1);
}
void r28runtime_check_loop_variant(T28* C,T0* a1){
T2 _idx=0;
T0* _cp=NULL;
_cp=oBC12constant_pool;
X109compile_to_jvm(a1);
r28push_position(C,X109start_position(a1));
_idx=r29idx_methodref3(((T29*)_cp),((T0*)ms13_42084),((T0*)ms28_93418),((T0*)ms28_58370));
r28opcode_invokestatic(C,_idx,-(5));
}
void r28push_position(T28* C,T0* a1){
/*[IF*/
if((a1)==((void*)(NULL))){
/*[IRF3.4opcode_iconst_0*/r28opcode(C,3,1);
/*]*/
/*[IRF3.4opcode_iconst_0*/r28opcode(C,3,1);
/*]*/
/*[IRF3.4opcode_aconst_null*/r28opcode(C,1,1);
/*]*/
}
else{
r28opcode_push_integer(C,/*(IRF4.6line*/((((T59*)a1))->_mem_line_column/*4*/)/(1000)/*)*/);
r28opcode_push_integer(C,/*(IRF4.6column*/((((T59*)a1))->_mem_line_column/*4*/)%(1000)/*)*/);
r28opcode_ldc(C,r29idx_string((T29*)(oBC12constant_pool),r59path(((T59*)a1))));
}
/*FI]*/
}
T2 r28opcode_ifeq(T28* C){
T2 R=0;
r28opcode(C,153,-(1));
R=r28skip_2_bytes();
return R;
}
/*No:CODE_ATTRIBUTE.us_se_remove*/
/*No:CODE_ATTRIBUTE.us_se_rename*/
/*No:CODE_ATTRIBUTE.Java_lang_system*/
void r28append_u2(T0* a1,T2 a2){
/*[IRF3.6append_u1*/{T0* b1=a1;
T2 b2=(a2)/(256);
r7extend(((T7*)b1),((T3)(b2)));
}/*]*/
/*[IRF3.6append_u1*/{T0* b1=a1;
T2 b2=(a2)%(256);
r7extend(((T7*)b1),((T3)(b2)));
}/*]*/
}
void r28runtime_sfw_open(T28* C){
T2 _idx=0;
T0* _cp=NULL;
_cp=oBC12constant_pool;
_idx=r29idx_methodref3(((T29*)_cp),((T0*)ms13_42084),((T0*)ms14_11496),((T0*)ms13_102372));
r28opcode_invokestatic(C,_idx,0);
}
void r28runtime_sfr_open(T28* C){
T2 _idx=0;
T0* _cp=NULL;
_cp=oBC12constant_pool;
_idx=r29idx_methodref3(((T29*)_cp),((T0*)ms13_42084),((T0*)ms14_11456),((T0*)ms13_102372));
r28opcode_invokestatic(C,_idx,0);
}
void r28opcode_push_as_float(T28* C,T0* a1){
{int z1=/*(IRF4.6item*/((((T7*)a1))->_storage/*0*/)[(1)-(1)]/*)*/;
if((48==z1)){
/*[IF*/
if(((((T7*)a1))->_count/*4*/)==(1)){
r28opcode(C,11,1);
}
else{
{int z2=/*(IRF4.6item*/((((T7*)a1))->_storage/*0*/)[(2)-(1)]/*)*/;
if((46==z2)){
/*[IF*/
if(((((T7*)a1))->_count/*4*/)==(2)){
r28opcode(C,11,1);
}
else if((((((T7*)a1))->_count/*4*/)==(3))&&((/*(IRF4.6item*/((((T7*)a1))->_storage/*0*/)[(3)-(1)]/*)*/)==('0'))){
r28opcode(C,11,1);
}
else{
r28opcode_string2float(C,a1);
}
/*FI]*/
}
else{r28opcode_string2float(C,a1);
}}
}
/*FI]*/
}
else
if((49==z1)){
/*[IF*/
if(((((T7*)a1))->_count/*4*/)==(1)){
r28opcode(C,12,1);
}
else{
{int z2=/*(IRF4.6item*/((((T7*)a1))->_storage/*0*/)[(2)-(1)]/*)*/;
if((46==z2)){
/*[IF*/
if(((((T7*)a1))->_count/*4*/)==(2)){
r28opcode(C,12,1);
}
else if((((((T7*)a1))->_count/*4*/)==(3))&&((/*(IRF4.6item*/((((T7*)a1))->_storage/*0*/)[(3)-(1)]/*)*/)==('0'))){
r28opcode(C,12,1);
}
else{
r28opcode_string2float(C,a1);
}
/*FI]*/
}
else{r28opcode_string2float(C,a1);
}}
}
/*FI]*/
}
else
if((50==z1)){
/*[IF*/
if(((((T7*)a1))->_count/*4*/)==(1)){
r28opcode(C,13,1);
}
else{
{int z2=/*(IRF4.6item*/((((T7*)a1))->_storage/*0*/)[(2)-(1)]/*)*/;
if((46==z2)){
/*[IF*/
if(((((T7*)a1))->_count/*4*/)==(2)){
r28opcode(C,13,1);
}
else if((((((T7*)a1))->_count/*4*/)==(3))&&((/*(IRF4.6item*/((((T7*)a1))->_storage/*0*/)[(3)-(1)]/*)*/)==('0'))){
r28opcode(C,13,1);
}
else{
r28opcode_string2float(C,a1);
}
/*FI]*/
}
else{r28opcode_string2float(C,a1);
}}
}
/*FI]*/
}
else{r28opcode_string2float(C,a1);
}}
}
/*No:CODE_ATTRIBUTE.us_print_run_time_stack*/
/*No:CODE_ATTRIBUTE.opcode_dup*/
/*No:CODE_ATTRIBUTE.opcode_arraylength*/
/*No:CODE_ATTRIBUTE.opcode_pop*/
/*No:CODE_ATTRIBUTE.opcode_dup2*/
/*No:CODE_ATTRIBUTE.opcode_pop2*/
T0*oBC28tmp_string=NULL;
/*No:CODE_ATTRIBUTE.max_stack*/
/*No:CODE_ATTRIBUTE.opcode_aload_2*/
/*No:CODE_ATTRIBUTE.opcode_iconst_m1*/
void r28opcode_anewarray(T28* C,T2 a1){
r28opcode(C,189,0);
r28add_u2(a1);
}
T2 r28opcode_ifge(T28* C){
T2 R=0;
r28opcode(C,156,-(1));
R=r28skip_2_bytes();
return R;
}
T2 r28opcode_ifle(T28* C){
T2 R=0;
r28opcode(C,158,-(1));
R=r28skip_2_bytes();
return R;
}
T2 r28opcode_ifne(T28* C){
T2 R=0;
r28opcode(C,154,-(1));
R=r28skip_2_bytes();
return R;
}
/*No:CODE_ATTRIBUTE.opcode_fastore*/
/*No:CODE_ATTRIBUTE.opcode_iastore*/
/*No:CODE_ATTRIBUTE.opcode_iconst_0*/
/*No:CODE_ATTRIBUTE.opcode_dastore*/
/*No:CODE_ATTRIBUTE.opcode_bastore*/
/*No:CODE_ATTRIBUTE.opcode_fconst_0*/
/*No:CODE_ATTRIBUTE.opcode_dconst_0*/
/*No:CODE_ATTRIBUTE.opcode_aastore*/
void r28read_byte(T28* C){
T2 _idx=0;
T0* _cp=NULL;
_cp=oBC12constant_pool;
_idx=r29idx_class2(((T29*)_cp),((T0*)ms13_48469));
r28opcode_checkcast(C,_idx);
_idx=r29idx_methodref3(((T29*)_cp),((T0*)ms13_48469),((T0*)ms13_1688),((T0*)ms13_480));
r28opcode_invokevirtual(C,_idx,0);
}
void r28runtime_die_with_code(T28* C){
T2 _idx=0;
T0* _cp=NULL;
_cp=oBC12constant_pool;
_idx=r29idx_methodref3(((T29*)_cp),((T0*)ms13_42084),((T0*)ms14_24024),((T0*)ms13_1000));
r28opcode_invokestatic(C,_idx,-(1));
}
void r28runtime_se_remove(T28* C){
T2 _idx=0;
T0* _cp=NULL;
_cp=oBC12constant_pool;
_idx=r29idx_methodref3(((T29*)_cp),((T0*)ms13_42084),((T0*)ms14_13050a),((T0*)ms28_47418));
r28opcode_invokestatic(C,_idx,-(1));
}
void r28runtime_se_rename(T28* C){
T2 _idx=0;
T0* _cp=NULL;
_cp=oBC12constant_pool;
_idx=r29idx_methodref3(((T29*)_cp),((T0*)ms13_42084),((T0*)ms14_13050),((T0*)ms28_148434));
r28opcode_invokestatic(C,_idx,-(2));
}
void r28runtime_se_string2double(T28* C){
T2 _idx=0;
T0* _cp=NULL;
_cp=oBC12constant_pool;
_idx=r29idx_methodref3(((T29*)_cp),((T0*)ms13_42084),((T0*)ms14_34768),((T0*)ms28_39480));
r28opcode_invokestatic(C,_idx,1);
}
void r28opcode_system_out(T28* C){
T2 _idx=0;
_idx=r29idx_fieldref3((T29*)(oBC12constant_pool),((T0*)ms28_35584),((T0*)ms13_1050),((T0*)ms13_36708a));
r28opcode_getstatic(C,_idx,1);
}
void r28runtime_se_system(T28* C){
T2 _idx=0;
T0* _cp=NULL;
_cp=oBC12constant_pool;
_idx=r29idx_methodref3(((T29*)_cp),((T0*)ms13_42084),((T0*)ms14_13887),((T0*)ms28_47418));
r28opcode_invokestatic(C,_idx,-(1));
}
/*No:CODE_ATTRIBUTE.opcode_f2i*/
/*No:CODE_ATTRIBUTE.opcode_d2i*/
/*No:CODE_ATTRIBUTE.fz_40*/
/*No:CODE_ATTRIBUTE.fz_32*/
/*No:CODE_ATTRIBUTE.fz_41*/
/*No:CODE_ATTRIBUTE.fz_33*/
/*No:CODE_ATTRIBUTE.fz_60*/
/*No:CODE_ATTRIBUTE.fz_70*/
/*No:CODE_ATTRIBUTE.fz_34*/
/*No:CODE_ATTRIBUTE.fz_61*/
/*No:CODE_ATTRIBUTE.fz_71*/
/*No:CODE_ATTRIBUTE.fz_44*/
/*No:CODE_ATTRIBUTE.fz_62*/
void r28runtime_error(T28* C,T0* a1,T0* a2,T0* a3){
T2 _idx=0;
T0* _cp=NULL;
_cp=oBC12constant_pool;
r28push_position(C,a1);
/*[IF*/
if((a2)==((void*)(NULL))){
/*[IRF3.4opcode_aconst_null*/r28opcode(C,1,1);
/*]*/
}
else{
r28opcode_ldc(C,r29idx_string(((T29*)_cp),X52run_time_mark(a2)));
}
/*FI]*/
r28opcode_ldc(C,r29idx_string(((T29*)_cp),a3));
_idx=r29idx_methodref3(((T29*)_cp),((T0*)ms13_42084),((T0*)ms28_26767),((T0*)ms28_321963));
r28opcode_invokestatic(C,_idx,-(5));
}
/*No:CODE_ATTRIBUTE.fz_27*/
/*No:CODE_ATTRIBUTE.fz_81*/
/*No:CODE_ATTRIBUTE.opcode_ishl*/
/*No:CODE_ATTRIBUTE.opcode_dmul*/
/*No:CODE_ATTRIBUTE.opcode_fmul*/
/*No:CODE_ATTRIBUTE.opcode_imul*/
/*No:CODE_ATTRIBUTE.fz_37*/
/*No:CODE_ATTRIBUTE.fz_82*/
/*No:CODE_ATTRIBUTE.fz_29*/
/*No:CODE_ATTRIBUTE.fz_38*/
/*No:CODE_ATTRIBUTE.fz_83*/
/*No:CODE_ATTRIBUTE.opcode_fcmpg*/
/*No:CODE_ATTRIBUTE.opcode_dcmpg*/
void r28opcode_string2double(T28* C,T0* a1){
T2 _idx=0;
_idx=r29idx_string((T29*)(oBC12constant_pool),a1);
r28opcode_ldc(C,_idx);
_idx=r29idx_methodref3((T29*)(oBC12constant_pool),((T0*)ms13_33536),((T0*)ms13_7520),((T0*)ms13_39480));
r28opcode_invokestatic(C,_idx,1);
}
/*No:CODE_ATTRIBUTE.fz_39*/
/*No:CODE_ATTRIBUTE.stack_level*/
/*No:CODE_ATTRIBUTE.fz_49*/
/*No:CODE_ATTRIBUTE.fz_58*/
void r28append_u4(T0* a1,T2 a2){
r28append_u2(a1,(a2)/(65536));
r28append_u2(a1,(a2)%(65536));
}
/*No:CODE_ATTRIBUTE.opcode_i2b*/
/*No:CODE_ATTRIBUTE.fz_69*/
T2 r28extra_local_size1(T28* C){
T2 R=0;
R=(C)->_max_locals/*4*/;
C->_max_locals=((C)->_max_locals/*4*/)+(1);
return R;
}
void r28push_strange_integer(T28* C,T2 a1){
T0* _cp=NULL;
T2 _idx=0;
_cp=oBC12constant_pool;
/*[IRF3.3clear*/((((T7*)((T7*)(oBC28tmp_string))))->_count)=(0);
/*]*/
r2append_in(a1,oBC28tmp_string);
_idx=r29idx_string(((T29*)_cp),oBC28tmp_string);
r28opcode_ldc(C,_idx);
_idx=r29idx_methodref3(((T29*)_cp),((T0*)ms13_41106),((T0*)ms13_11856),((T0*)ms13_41685));
r28opcode_invokestatic(C,_idx,0);
}
/*No:CODE_ATTRIBUTE.opcode_iushr*/
/*No:CODE_ATTRIBUTE.opcode_ior*/
void r28opcode_push_as_double(T28* C,T0* a1){
{int z1=/*(IRF4.6item*/((((T7*)a1))->_storage/*0*/)[(1)-(1)]/*)*/;
if((48==z1)){
/*[IF*/
if(((((T7*)a1))->_count/*4*/)==(1)){
r28opcode(C,14,2);
}
else{
{int z2=/*(IRF4.6item*/((((T7*)a1))->_storage/*0*/)[(2)-(1)]/*)*/;
if((46==z2)){
/*[IF*/
if(((((T7*)a1))->_count/*4*/)==(2)){
r28opcode(C,14,2);
}
else if((((((T7*)a1))->_count/*4*/)==(3))&&((/*(IRF4.6item*/((((T7*)a1))->_storage/*0*/)[(3)-(1)]/*)*/)==('0'))){
r28opcode(C,14,2);
}
else{
r28opcode_string2double(C,a1);
}
/*FI]*/
}
else{r28opcode_string2double(C,a1);
}}
}
/*FI]*/
}
else
if((49==z1)){
/*[IF*/
if(((((T7*)a1))->_count/*4*/)==(1)){
r28opcode(C,15,2);
}
else{
{int z2=/*(IRF4.6item*/((((T7*)a1))->_storage/*0*/)[(2)-(1)]/*)*/;
if((46==z2)){
/*[IF*/
if(((((T7*)a1))->_count/*4*/)==(2)){
r28opcode(C,15,2);
}
else if((((((T7*)a1))->_count/*4*/)==(3))&&((/*(IRF4.6item*/((((T7*)a1))->_storage/*0*/)[(3)-(1)]/*)*/)==('0'))){
r28opcode(C,15,2);
}
else{
r28opcode_string2double(C,a1);
}
/*FI]*/
}
else{r28opcode_string2double(C,a1);
}}
}
/*FI]*/
}
else{r28opcode_string2double(C,a1);
}}
}
T0* r10command_name(void){
T0* R=NULL;
R=((T0*)ms14_29078);
return R;
}
/*No:COMPILE_TO_JVM.nb_errors*/
/*No:COMPILE_TO_JVM.state*/
void r10error_level(T10* C,T0* a1){
C->_state=9;
/*[IRF3.6append*/{T0* b1=r10command_name();
r7append((T7*)(oBC21explanation),b1);
}/*]*/
/*[IRF3.6append*/{T0* b1=((T0*)ms11_32864);
r7append((T7*)(oBC21explanation),b1);
}/*]*/
/*[IRF3.6append*/{T0* b1=(C)->_level/*4*/;
r7append((T7*)(oBC21explanation),b1);
}/*]*/
/*[IRF3.6append*/{T0* b1=((T0*)ms11_7788);
r7append((T7*)(oBC21explanation),b1);
}/*]*/
/*[IRF3.6append*/{T0* b1=a1;
r7append((T7*)(oBC21explanation),b1);
}/*]*/
/*[IRF3.6append*/{T0* b1=((T0*)ms13_47);
r7append((T7*)(oBC21explanation),b1);
}/*]*/
r21print_as_error((T21*)(oBC12eh));
}
/*No:COMPILE_TO_JVM.root_class*/
T0* r10system_tools(void){
if(fBC12system_tools==0){
fBC12system_tools=1;
{T72*n=malloc(sizeof(*n));
*n=M72;
r72make(n);
oBC12system_tools=(T0*)n;
}
}
return oBC12system_tools;}
void r10automat(T10* C){
T0* _a=NULL;
T2 _arg=0;
_arg=1;
while (!(((_arg)>(/*(IRF4.9argument_count*/((T68*)(r10command_arguments()))->_upper/*8*//*)*/))||(((C)->_state/*0*/)>(7)))) {
_a=r10argument(_arg);
{int z1=(C)->_state/*0*/;
if((0==z1)){
/*[IF*/
if((/*(IRF4.6item*/((((T7*)_a))->_storage/*0*/)[(1)-(1)]/*)*/)!=('\55')){
C->_root_class=_a;
r76compute_root_class((T76*)(oBC12run_control),_a);
C->_state=1;
}
else if(r7is_equal(ms10_7146,_a)){
/*[IF*/
if(((C)->_level/*4*/)!=((void*)(NULL))){
r10error_level(C,_a);
}
else{
/*[IRF3.3set_boost*/((((T76*)((T76*)(oBC12run_control))))->_level)=(-6);
/*]*/
C->_level=_a;
}
/*FI]*/
}
else if(r7is_equal(ms10_12942,_a)){
/*[IF*/
if(((C)->_level/*4*/)!=((void*)(NULL))){
r10error_level(C,_a);
}
else{
/*[IRF3.3set_no_check*/((((T76*)((T76*)(oBC12run_control))))->_level)=(-5);
/*]*/
C->_level=_a;
}
/*FI]*/
}
else if(r7is_equal(ms10_28042,_a)){
/*[IF*/
if(((C)->_level/*4*/)!=((void*)(NULL))){
r10error_level(C,_a);
}
else{
/*[IRF3.3set_require_check*/((((T76*)((T76*)(oBC12run_control))))->_level)=(-4);
/*]*/
C->_level=_a;
}
/*FI]*/
}
else if(r7is_equal(ms10_24622,_a)){
/*[IF*/
if(((C)->_level/*4*/)!=((void*)(NULL))){
r10error_level(C,_a);
}
else{
/*[IRF3.3set_ensure_check*/((((T76*)((T76*)(oBC12run_control))))->_level)=(-3);
/*]*/
C->_level=_a;
}
/*FI]*/
}
else if(r7is_equal(ms10_35232,_a)){
/*[IF*/
if(((C)->_level/*4*/)!=((void*)(NULL))){
r10error_level(C,_a);
}
else{
/*[IRF3.3set_invariant_check*/((((T76*)((T76*)(oBC12run_control))))->_level)=(-2);
/*]*/
C->_level=_a;
}
/*FI]*/
}
else if(r7is_equal(ms10_18469,_a)){
/*[IF*/
if(((C)->_level/*4*/)!=((void*)(NULL))){
r10error_level(C,_a);
}
else{
/*[IRF3.3set_loop_check*/((((T76*)((T76*)(oBC12run_control))))->_level)=(-1);
/*]*/
C->_level=_a;
}
/*FI]*/
}
else if(r7is_equal(ms10_15380,_a)){
/*[IF*/
if(((C)->_level/*4*/)!=((void*)(NULL))){
r10error_level(C,_a);
}
else{
/*[IRF3.3set_all_check*/((((T76*)((T76*)(oBC12run_control))))->_level)=(0);
/*]*/
C->_level=_a;
}
/*FI]*/
}
else if(r7is_equal(ms10_21120,_a)){
/*[IF*/
if(((C)->_level/*4*/)!=((void*)(NULL))){
r10error_level(C,_a);
}
else{
/*[IRF3.3set_debug_check*/((((T76*)((T76*)(oBC12run_control))))->_level)=(1);
/*]*/
C->_level=_a;
}
/*FI]*/
}
else if(r7is_equal(ms10_17908,_a)){
/*[IRF3.3set_no_warning*/((((T21*)((T21*)(oBC12eh))))->_no_warning)=(1);
/*]*/
}
else if(r7is_equal((T7*)(((T0*)ms13_10392)),_a)){
}
else if(r7is_equal(ms10_6552,_a)){
/*[IRF3.3set_trace*/((((T76*)((T76*)(oBC12run_control))))->_trace)=(1);
/*]*/
}
else if(r7is_equal(ms10_6672,_a)){
C->_state=2;
}
else if(r7is_equal(ms10_318,_a)){
C->_state=3;
}
else{
/*[IRF3.6append*/{T0* b1=((T0*)ms10_47130);
r7append((T7*)(oBC21explanation),b1);
}/*]*/
/*[IRF3.6append*/{T0* b1=_a;
r7append((T7*)(oBC21explanation),b1);
}/*]*/
/*[IRF3.6append*/{T0* b1=((T0*)ms10_166);
r7append((T7*)(oBC21explanation),b1);
}/*]*/
r21print_as_error((T21*)(oBC12eh));
C->_state=9;
}
/*FI]*/
}
else
if((1==z1)){
/*[IF*/
if((/*(IRF4.6item*/((((T7*)_a))->_storage/*0*/)[(1)-(1)]/*)*/)==('\55')){
_arg=(_arg)-(1);
}
else{
C->_start_proc=_a;
}
/*FI]*/
C->_state=0;
}
else
if((2==z1)){
/*[IRF3.3set_cecil_path*/((((T76*)((T76*)(oBC12run_control))))->_cecil_path)=(_a);
/*]*/
C->_state=0;
}
else {r24set_output_name((T24*)(oBC12jvm),_a);
C->_state=0;
}}
_arg=(_arg)+(1);
}
/*[IF*/
if((/*(IRF4.9nb_errors*/((T21*)(oBC12eh))->_nb_errors/*4*//*)*/)==(0)){
/*[IF*/
if(((T76*)(oBC12run_control))->_trace/*4*/){
/*[IF*/
if(r76boost((T76*)(oBC12run_control))){
/*[IRF3.3set_no_check*/((((T76*)((T76*)(oBC12run_control))))->_level)=(-5);
/*]*/
}
/*FI]*/
}
/*FI]*/
r22compile_to_jvm((T22*)(oBC12small_eiffel),(C)->_root_class/*8*/,(C)->_start_proc/*12*/);
}
/*FI]*/
}
/*No:COMPILE_TO_JVM.us_make*/
/*No:COMPILE_TO_JVM.fz_dot*/
T0* r10argument(T2 a1){
T0* R=NULL;
R=/*(IRF4.6item*/(((T68*)(r10command_arguments()))->_storage/*0*/)[a1]/*)*/;
return R;
}
void r10make(T10* C){
/*[IF*/
if((/*(IRF4.9argument_count*/((T68*)(r10command_arguments()))->_upper/*8*//*)*/)<(1)){
r72bad_use_exit((T72*)(r10system_tools()),((T0*)ms10_29078));
}
/*FI]*/
r31search_for_verbose_flag((T31*)(oBC12echo));
C->_start_proc=((T0*)ms14_1696);
/*[IRF3.3set_drop_comments*/((((T71*)((T71*)(oBC12eiffel_parser))))->_drop_comments)=(1);
/*]*/
r10automat(C);
}
/*No:COMPILE_TO_JVM.level*/
/*No:COMPILE_TO_JVM.argument_count*/
/*No:COMPILE_TO_JVM.fz_verbose_flag*/
/*No:COMPILE_TO_JVM.start_proc*/
int fBC1command_arguments=0;
T0*oBC1command_arguments=NULL;
T0* r10command_arguments(void){
if(fBC1command_arguments==0){
T0* _arg=NULL;
T2 _i=0;
fBC1command_arguments=1;
_i=se_argc;
{T68*n=malloc(sizeof(*n));
*n=M68;
r68make(n,_i);
oBC1command_arguments=(T0*)n;
}
while (!((_i)==(0))) {
_i=(_i)-(1);
_arg=((T0*)e2s(se_argv[_i]));
/*[IRF3.5put*/((((T68*)oBC1command_arguments))->_storage/*0*/)[_i]=(_arg);
/*]*/
}
}
return oBC1command_arguments;}
/*No:COMPILE_TO_JVM.us_compile_to_jvm*/
/*No:TYPE_CHARACTER.start_position*/
void r270jvm_initialize_local(T2 a1){
/*[IRF3.4opcode_iconst_0*/r28opcode((T28*)(oBC12code_attribute),3,1);
/*]*/
/*[IRF3.6jvm_write_local*/{T2 b1=a1;
r28opcode_istore((T28*)(oBC12code_attribute),b1);
}/*]*/
}
int fBC270used_as_reference=0;
void r270used_as_reference(void){
if (fBC270used_as_reference==0){
fBC270used_as_reference=1;
r270load_ref(((T0*)ms14_16588));
}}
/*No:TYPE_CHARACTER.is_user_expanded*/
/*No:TYPE_CHARACTER.id*/
/*No:TYPE_CHARACTER.is_pointer*/
/*No:TYPE_CHARACTER.jvm_check_class_invariant*/
T0* r270to_runnable(T270* C,T0* a1){
T0* R=NULL;
R=(T0*)C;
r270check_type(C);
return R;
}
T0* r270run_class(T270* C){
T0* R=NULL;
R=r22run_class((T0*)C);
return R;
}
/*No:TYPE_CHARACTER.us_item*/
/*No:TYPE_CHARACTER.is_like_current*/
/*No:TYPE_CHARACTER.is_bit*/
/*No:TYPE_CHARACTER.jvm_write_local*/
T0* r270smallest_ancestor(T270* C,T0* a1){
T0* R=NULL;
T0* _rto=NULL;
_rto=X52run_type(a1);
/*[IF*/
if(X52is_character(_rto)){
R=(T0*)C;
}
else{
R=r277smallest_ancestor((T277*)(r270type_character_ref()),_rto);
}
/*FI]*/
return R;
}
T0* r270run_time_mark(void){
T0* R=NULL;
R=((T0*)ms14_9936);
return R;
}
/*No:TYPE_CHARACTER.is_expanded*/
/*No:TYPE_CHARACTER.jvm_if_x_eq*/
/*No:TYPE_CHARACTER.jvm_xnewarray*/
int fBC12type_character_ref=0;
T0*oBC12type_character_ref=NULL;
T0* r270type_character_ref(void){
if(fBC12type_character_ref==0){
T0* _character_ref=NULL;
fBC12type_character_ref=1;
{T70*n=malloc(sizeof(*n));
*n=M70;
r70make(n,((T0*)ms14_16588),NULL);
_character_ref=(T0*)n;
}
{T277*n=malloc(sizeof(*n));
*n=M277;
/*[IRF3.3make*/((((T277*)(n)))->_base_class_name)=(_character_ref);
/*]*/
oBC12type_character_ref=(T0*)n;
}
}
return oBC12type_character_ref;}
/*No:TYPE_CHARACTER.jvm_push_local*/
/*No:TYPE_CHARACTER.fz_dot*/
/*No:TYPE_CHARACTER.is_like_feature*/
T6 r270is_a(T270* C,T0* a1){
T6 R=0;
/*[IF*/
if(X52is_character(a1)){
R=1;
}
else{
R=r63is_subclass_of((T63*)(r270base_class(C)),X52base_class(a1));
/*[IF*/
if(R){
r270used_as_reference();
}
/*FI]*/
}
/*FI]*/
/*[IF*/
if(!(R)){
r21add_type((T0*)C,((T0*)ms13_17730));
r21add_type(a1,((T0*)ms13_47));
}
/*FI]*/
return R;
}
T0* r270written_mark(void){
T0* R=NULL;
R=((T0*)ms14_9936);
return R;
}
/*No:TYPE_CHARACTER.is_character*/
void r270error(T0* a1,T0* a2){
r21add_position(a1);
r21error((T21*)(oBC12eh),a2);
}
void r270make(T270* C,T0* a1){
{T70*n=malloc(sizeof(*n));
*n=M70;
r70make(n,((T0*)ms14_9936),a1);
C->_base_class_name=(T0*)n;
}
}
T2 r270jvm_convert_to(T0* a1){
T2 R=0;
/*[IF*/
if(X52is_reference(a1)){
/*[IRF3.2jvm_to_reference*/{T0* _ca=NULL;
T2 _idx=0;
T0* _rc=NULL;
_ca=oBC12code_attribute;
_rc=r277run_class((T277*)(r270type_character_ref()));
r23jvm_basic_new(((T23*)_rc));
/*[IRF3.4opcode_dup_x1*/r28opcode(((T28*)_ca),90,1);
/*]*/
/*[IRF3.4opcode_swap*/r28opcode(((T28*)_ca),95,0);
/*]*/
_idx=r23jvm_constant_pool_index(((T23*)_rc));
_idx=r29idx_fieldref4((T29*)(oBC12constant_pool),_idx,((T0*)ms14_1764),((T0*)ms13_67));
r28opcode_putfield(((T28*)_ca),_idx,-(2));
}/*]*/
}
/*FI]*/
R=1;
return R;
}
void r270fatal_error_generic_list(T270* C){
r21add_type((T0*)C,((T0*)ms52_29184));
r21print_as_fatal_error((T21*)(oBC12eh));
}
/*No:TYPE_CHARACTER.is_array*/
T2 r270jvm_push_default(void){
T2 R=0;
/*[IRF3.4opcode_iconst_0*/r28opcode((T28*)(oBC12code_attribute),3,1);
/*]*/
R=1;
return R;
}
/*No:TYPE_CHARACTER.is_dummy_expanded*/
T0* r270generic_list(T270* C){
T0* R=NULL;
r270fatal_error_generic_list(C);
return R;
}
T0* r270base_class(T270* C){
T0* R=NULL;
T0* _bcn=NULL;
_bcn=(C)->_base_class_name/*4*/;
/*[IF*/
if((_bcn)!=((void*)(NULL))){
R=r70base_class(((T70*)_bcn));
}
else{
/*[IRF3.6append*/{T0* b1=((T0*)ms52_37098);
r7append((T7*)(oBC21explanation),b1);
}/*]*/
r21add_type((T0*)C,((T0*)ms13_47));
r21print_as_fatal_error((T21*)(oBC12eh));
}
/*FI]*/
return R;
}
/*No:TYPE_CHARACTER.jvm_if_x_ne*/
/*No:TYPE_CHARACTER.base_class_name*/
/*No:TYPE_CHARACTER.jvm_standard_is_equal*/
/*No:TYPE_CHARACTER.is_formal_generic*/
T6 r270is_a_in(T270* C,T0* a1,T0* a2){
T6 R=0;
T0* _ct=NULL;
T0* _t2=NULL;
T0* _t1=NULL;
/*[IF*/
if((r270written_mark())==((void*)(X52written_mark(a1)))){
R=1;
}
else{
_ct=(((T23*)a2))->_current_type/*0*/;
_t1=r270to_runnable(C,_ct);
_t2=X52to_runnable(a1,_ct);
/*[IF*/
if((X52run_time_mark(_t1))==((void*)(X52run_time_mark(_t2)))){
R=1;
}
else{
R=X52is_a(_t1,_t2);
}
/*FI]*/
}
/*FI]*/
return R;
}
T0* r270look_up_for(T270* C,T0* a1,T0* a2){
T0* R=NULL;
R=r63look_up_for((T63*)(r270base_class(C)),a1,a2);
return R;
}
/*No:TYPE_CHARACTER.jvm_to_reference*/
/*No:TYPE_CHARACTER.run_type*/
T6 r270has_creation(T270* C,T0* a1){
T6 R=0;
r21add_position(X50start_position(a1));
r270error(/*(IRF4.6start_position*/(((T70*)((C)->_base_class_name/*4*/)))->_start_position/*4*//*)*/,((T0*)ms269_100044));
return R;
}
/*No:TYPE_CHARACTER.expanded_initializer*/
/*No:TYPE_CHARACTER.fz_41*/
/*No:TYPE_CHARACTER.jvm_method_flags*/
/*No:TYPE_CHARACTER.is_boolean*/
/*No:TYPE_CHARACTER.is_generic*/
/*No:TYPE_CHARACTER.jvm_xaload*/
/*No:TYPE_CHARACTER.us_character_ref*/
/*No:TYPE_CHARACTER.is_real*/
/*No:TYPE_CHARACTER.is_any*/
/*No:TYPE_CHARACTER.nb_errors*/
/*No:TYPE_CHARACTER.us_character*/
/*No:TYPE_CHARACTER.is_basic_eiffel_expanded*/
/*No:TYPE_CHARACTER.jvm_descriptor_in*/
/*No:TYPE_CHARACTER.is_string*/
T6 r270is_native_array(T270* C){
T6 R=0;
T0* _tna=NULL;
_tna=(T0*)C;
if(NULL!=(_tna))switch(((T0*)_tna)->id) {
case 267:
break;
default:
_tna=NULL;
};R=(_tna)!=((void*)(NULL));
return R;
}
/*No:TYPE_CHARACTER.is_integer*/
/*No:TYPE_CHARACTER.is_anchored*/
/*No:TYPE_CHARACTER.is_run_type*/
/*No:TYPE_CHARACTER.is_reference*/
/*No:TYPE_CHARACTER.is_none*/
/*No:TYPE_CHARACTER.jvm_return_code*/
/*No:TYPE_CHARACTER.jvm_target_descriptor_in*/
/*No:TYPE_CHARACTER.fz_inako*/
/*No:TYPE_CHARACTER.jvm_xastore*/
/*No:TYPE_CHARACTER.is_like_argument*/
void r270load_ref(T0* a1){
T0* _rf=NULL;
T0* _rc=NULL;
T0* _cn=NULL;
{T70*n=malloc(sizeof(*n));
*n=M70;
r70make(n,a1,NULL);
_cn=(T0*)n;
}
_rc=r63run_class((T63*)(r70base_class(((T70*)_cn))));
r23set_at_run_time(((T23*)_rc));
_rf=r23get_feature_with(((T23*)_rc),((T0*)ms14_1764));
}
int fBC270check_type=0;
void r270check_type(T270* C){
if (fBC270check_type==0){
T0* _rc=NULL;
T0* _bc=NULL;
fBC270check_type=1;
_bc=r270base_class(C);
/*[IF*/
if((/*(IRF4.9nb_errors*/((T21*)(oBC12eh))->_nb_errors/*4*//*)*/)==(0)){
_rc=r270run_class(C);
}
/*FI]*/
/*[IF*/
if((/*(IRF4.9nb_errors*/((T21*)(oBC12eh))->_nb_errors/*4*//*)*/)==(0)){
/*[IF*/
if(!((((T63*)_bc))->_is_expanded/*20*/)){
r270error(/*(IRF4.6start_position*/(((T70*)((C)->_base_class_name/*4*/)))->_start_position/*4*//*)*/,((T0*)ms270_43416));
}
/*FI]*/
}
/*FI]*/
}}
T2 r270jvm_stack_space(void){
T2 R=0;
/*[IF*/
/*AF*//*AE*/
R=1;
/*FI]*/
return R;
}
/*No:TYPE_CHARACTER.is_double*/
T2 r270jvm_expanded_from_reference(T0* a1){
T2 R=0;
T0* _ca=NULL;
T2 _idx=0;
T0* _rc=NULL;
_ca=oBC12code_attribute;
_rc=r277run_class((T277*)(r270type_character_ref()));
r23opcode_checkcast(((T23*)_rc));
_idx=r23jvm_constant_pool_index(((T23*)_rc));
_idx=r29idx_fieldref4((T29*)(oBC12constant_pool),_idx,((T0*)ms14_1764),((T0*)ms13_67));
r28opcode_getfield(((T28*)_ca),_idx,0);
R=1;
return R;
}